Dataflow and Type-based Formulations for Reference Immutability
نویسندگان
چکیده
Reference immutability enforces the property that a reference cannot be used to mutate the referenced object. There are several type-based formulations for reference immutability in the literature. However, we are not aware of a dataflow formulation. In this paper, we present a dataflow formulation for reference immutability using CFL-reachability, as well as a type-based formulation using viewpoint adaptation, a key concept in ownership types. We observe analogies between the dataflow formulation and the type-based formulation.
منابع مشابه
Inference of Reference Immutability
Javari is an extension of Java that supports reference immutability constraints. Programmers write readonly type qualifiers and other constraints, and the Javari typechecker detects mutation errors (incorrect side effects) or verifies their absence. While case studies have demonstrated the practicality and value of Javari, a barrier to usability remains. A Javari program will not typecheck unle...
متن کاملTowards Unifying Immutability and Ownership
Immutability is a highly requested feature missing from the mainstream object-oriented languages. Boyland [2] argues that immutability cannot be introduced into a language without additional aliasing-prone mechanisms such as ownership (or fractional permissions). Rather than providing support for both of these important features independently [8, 6, 1], we explore the possibility of unifying th...
متن کاملRely-Guarantee References for Refinement Types
Reasoning about side effects and aliasing is the heart of verifyingimperative programs. Unrestricted side effects through one refer-ence can invalidate assumptions about an alias. We present a newtype system approach to reasoning about safe assumptions in thepresence of aliasing and side effects, unifying ideas from referenceimmutability type systems and rely-guarantee progr...
متن کاملRelaxing Ownership with Immutability
Multiple ownership [4] introduced a novel approach to managing object ownership information called “owners-as-boxes”. Each object is placed in a “box” or context and the nesting relationship between “boxes” or contexts respects the object accesses that happen during the program’s execution. No restrictions are placed on which objects are allowed to access which other objects, rather the ownersh...
متن کاملQuantifying and Explaining Immutability in Scala
Functional programming typically emphasizes programmingwith first-class functions and immutable data. Immutable data types enable fault tolerance in distributed systems, and ensure process isolation in message-passing concurrency, among other applications. However, beyond the distinction between reassignable and non-reassignable fields, Scala’s type system does not have a built-in notion of imm...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012